#ifndef nsHebrewProber_h__
#define nsHebrewProber_h__

#include "nsSBCharSetProber.h"


class nsHebrewProber: public nsCharSetProber {
  public:
    nsHebrewProber( void ) : mLogicalProb( 0 ), mVisualProb( 0 ) { Reset(); }

    virtual ~nsHebrewProber( void ) {}
    virtual nsProbingState HandleData( const char* aBuf, uint32_t aLen );
    virtual const char* GetCharSetName();
    virtual void Reset( void );

    virtual nsProbingState GetState( void );

    virtual float     GetConfidence( void ) { return ( float )0.0; }

    void SetModelProbers( nsCharSetProber *logicalPrb, nsCharSetProber *visualPrb ) { mLogicalProb = logicalPrb; mVisualProb = visualPrb; }

    #ifdef DEBUG_chardet
    virtual void  DumpStatus();
    #endif

  protected:
    static bool isFinal( char c );
    static bool isNonFinal( char c );

    int32_t mFinalCharLogicalScore, mFinalCharVisualScore;


    char mPrev, mBeforePrev;


    nsCharSetProber *mLogicalProb, *mVisualProb;
};


#endif
